#include <cstdio>
#include <set>
#include <vector>
using ll = long long;

ll n,k,ans{};
std::vector<ll> a,s;
std::multiset<ll> se;
#define NV(v)do{printf("%s",#v);printf(" : %lld\n",(v));}while(false)

void addAns(ll n){
    se.insert(n);
    if(se.size()>k){
        se.erase(--se.end());
    }
}

int main(){
    scanf("%lld%lld",&n,&k);
    a.resize(n+1);
    for(ll i=1;i<(ll)a.size();i++){
        scanf("%lld",&a[i]);
    }
    s.resize(a.size());
    for(ll i=1;i<(ll)s.size();i++){
        s[i]=s[i-1]+a[i];
    }
    for(ll i=1;i<(ll)s.size();i++){
        for(ll j=i;j<(ll)s.size();j++){
            addAns(s[j]-s[i-1]);
        }
    }
    for(ll i=1;i<=k;i++){
        static auto it = se.begin();
        ans+=*it;
        // NV(*it);
        it++;
    }
    printf("%lld\n",ans);
}